{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Object-Oriented Programming" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Douglas Blank, Bryn Mawr College, CS206, Spring 2016

\n", "\n", "**Topics**:\n", "\n", "* classes\n", "* instances\n", "* methods\n", "* fields/properties\n", "\n", "\n", "## Objects\n", "\n", "An object is a new type of thing, like String, int, or float.\n", "\n", "You define a new type of object using the `class` keyword.\n", "\n", "You create an **instance** of an object using the `new` keyword.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The simplest kind of class:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "scrolled": false }, "outputs": [], "source": [ "class Dog {\n", "\n", "}" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "scrolled": false }, "outputs": [], "source": [ "Dog dog1 = new Dog();" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A bit more complicated:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "class Dog {\n", " String name;\n", " \n", " Dog(String name) { // constructor\n", " this.name = name;\n", " }\n", " \n", " void speak() {\n", " printf(\"woof, woof! My name is %s\", this.name);\n", " }\n", "}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Making an `instance`:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "Dog dog1 = new Dog(\"Snoppy\");" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Making a bunch of instances:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "Dog dog2 = new Dog(\"Gracie\");\n", "Dog dog3 = new Dog(\"Louis\");\n", "Dog dog4 = new Dog(\"Mr. Puddles\");\n", "Dog dog5 = new Dog(\"Kirena\");\n", "Dog dog6 = new Dog(\"Pepper\");\n", "Dog dog7 = new Dog(\"Woofie\");\n", "Dog dog8 = new Dog(\"Boo\");" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "dog1.speak();\n", "dog2.speak();\n", "dog3.speak();\n", "dog4.speak();\n", "dog5.speak();\n", "dog6.speak();\n", "dog7.speak();\n", "dog8.speak();" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Another new type:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "class Student {\n", " String name;\n", "\n", " Student(String name) {\n", " this.name = name;\n", " }\n", "}" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "Student student1 = new Student(\"Kevin\");" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "Student student2 = new Student(\"Taylor\");" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Expressions" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "student1.name == student2.name" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Data Structures\n", "\n", "Imagine a chain link:\n", "\n", "\n", "\n", "We will use this idea to create a \"linked list\"\n", "\n", "## Linked List\n", "\n", "* starts out with no items (we'll call them nodes)\n", "* we add new links/nodes onto the end" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "class Node {\n", " String name;\n", " Node next;\n", " \n", " Node(String name) {\n", " this.name = name;\n", " }\n", "}\n", "\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "Node node = new Node(\"Kevin\");" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "node.next = new Node(\"Elizabeth\");" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "node.name" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "node.next.name" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Java 9", "language": "java", "name": "java9" }, "language_info": { "file_extension": ".class", "mimetype": "application/java-vm", "name": "java" } }, "nbformat": 4, "nbformat_minor": 0 }